#ifndef __OBJ_ENTITY_H__
#define __OBJ_ENTITY_H__

#include "../AppHeader.h"
#include "ObjectMesh.h"
#include "ObjectTexture.h"
#include "ObjectShader.h"
#include "Vertex.h"

class ObjectEntity
{
protected:
	ObjectMesh* m_Mesh;
	ObjectTexture* m_Texture;
	ObjectShader* m_Shader;
public:
	ObjectEntity() : m_Mesh(NULL), m_Texture(NULL), m_Shader(NULL) {}
	virtual ~ObjectEntity(){};

	virtual GLuint Init() = 0;
	virtual void Update(float) = 0;
	virtual void Draw() = 0;
	virtual void Destroy() = 0;

	void EnableGrayScale() { m_Mesh->EnableGrayScale(); }
};

#endif